package beans;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.faces.model.SelectItem;

public class PreguntaBean implements Serializable{
	private Pregunta pregunta;
	private List<Respuesta> respuestasEspeciales;
	private String[] respuestasSeleccionadasCheckbox;
	private String respuestaSeleccionada;

	public PreguntaBean(){
		respuestasEspeciales  = new ArrayList<Respuesta>();
	}
	
	public String getPreguntasSeleccionadasToString(){
		return respuestasSeleccionadasCheckbox.length>0?respuestasSeleccionadasCheckbox.toString():"";
	}
	
	public Pregunta getPregunta() {
		return pregunta;
	}

	public void setPregunta(Pregunta pregunta) {
		this.pregunta = pregunta;
	}
	
	public String getFormatoRespuestas(){
		return pregunta.getRespuestas().get(0).getFormatoRespuesta().getFormatoRespuesta();
	}
	
	public Map<String,Object> getSelectItems(){
		return buildSelectItems();
	}
	
	private Map<String,Object> buildSelectItems(){
		Map<String,Object> items = new LinkedHashMap<String,Object>();
		for (Respuesta respuesta : pregunta.getRespuestas()) {
			if(!respuesta.getFormatoRespuesta().getFormatoRespuesta().equals("Input"))
				items.put(respuesta.getRespuesta(), respuesta.getId());
			else{
				respuestasEspeciales.add(respuesta);
			}
		}
		
		return items;
	}
	
	public List<SelectItem> getRadiosItems() {
		List<SelectItem>  radiosItems = new ArrayList<SelectItem>();
		
		for (Respuesta respuesta : pregunta.getRespuestas()) {
			if(!respuesta.getFormatoRespuesta().getFormatoRespuesta().equals("Input"))
				radiosItems.add(new SelectItem(respuesta.getId(), respuesta.getRespuesta()));
			else{
				respuestasEspeciales.add(respuesta);
			}
		}
		
		return radiosItems;
		
	}

	public boolean getHasInput() {
		return respuestasEspeciales.size() > 0;
	}

	public List<Respuesta> getRespuestasEspeciales() {
		return respuestasEspeciales;
	}

	public void setRespuestasEspeciales(List<Respuesta> respuestasEspeciales) {
		this.respuestasEspeciales = respuestasEspeciales;
	}

	public String[] getRespuestasSeleccionadasCheckbox() {
		return respuestasSeleccionadasCheckbox;
	}

	public void setRespuestasSeleccionadasCheckbox(String[] respuestasSeleccionadasCheckbox) {
		this.respuestasSeleccionadasCheckbox = respuestasSeleccionadasCheckbox;
	}

	public String getRespuestaSeleccionada() {
		return respuestaSeleccionada;
	}

	public void setRespuestaSeleccionada(String respuestaSeleccionada) {
		this.respuestaSeleccionada = respuestaSeleccionada;
	}
	
	
	}
